package com.zenchn.generic;

import java.util.List;

/**
 * 所有自定义Service的顶级接口,封装常用的增删查改操作
 * <p/>
 * Model : 代表数据库中的表 映射的Java对象类型
 * PK :代表对象的主键类型
 *
 * @author dingxinfa
 * @date 2018-06-27
 */
public interface GenericService<Model, PK, Example> {

    long countByExample(Example example);

    int deleteByExample(Example example);

    int deleteByPrimaryKey(PK id);

    int insert(Model record);

    int insertSelective(Model record);

    List<Model> selectByExample(Example example);

    Model selectByPrimaryKey(PK id);

    int updateByExampleSelective(Model record, Example example);

    int updateByExample(Model record, Example example);

    int updateByPrimaryKeySelective(Model record);

    int updateByPrimaryKey(Model record);
}
